This invention relates generally to computer networks and, more particularly, to flooding algorithms associated with link state routing protocols used in a computer network.
A computer network is a geographically distributed collection of interconnected communication links for transporting data between nodes, such as computers. Many types of computer networks are available, with the types ranging from local area networks (LANs) to wide area networks (WANs). The nodes typically communicate by exchanging discrete frames or packets of data according to pre-defined protocols. In this context, a protocol consists of a set of rules defining how the nodes interact with each other.
Computer networks may be further interconnected by an intermediate node, called a router, to extend the effective xe2x80x9csizexe2x80x9d of each network. Since management of a large system of interconnected computer networks can prove burdensome, smaller groups of computer networks may be maintained as autonomous systems or routing domains. The term routing domain is used by the International Organization for Standardization (ISO), whereas the term autonomous system is used by the Internet community and, in particular, the Internet protocol suite or IP.
The networks within an autonomous system or routing domain are typically coupled together by conventional intradomain routers. These intradomain routers manage communication among local networks within their domains and communicate with each other using an intradomain routing protocol (ISO) or an Interior Gateway Protocol, IGP (IP). Examples of these protocols include the Intermediate System-to-Intermediate System, ISIS (ISO) and the Open Shortest Path First, OSPF (IP) routing protocols. The ISIS and OSPF protocols are based on link-state technology and, therefore, are hereinafter referred to as link state routing protocols.
In a link state routing protocol, each router maintains a database describing the topology of the routing domain or autonomous system (AS). This database is referred to as a link state database (LSDB) and each participating router has an identical LSDB. Each individual piece of the LSDB is a particular router""s local state, e.g., the router""s usable interfaces and reachable neighbors. As used herein, neighboring routers (or xe2x80x9cneighborsxe2x80x9d) are two routers that have interfaces to a common network, wherein an interface is a connection between a router and one of its attached networks. Each router distributes its local state throughout the domain in accordance with an initial LSBD synchronization process and a conventional, asynchronous flooding algorithm.
The flooding algorithm is one of the most important parts of any link state routing protocol. The algorithm ensures that all routers within a link state domain converge on the same topological information within a finite period of time. To ensure reliability, typical implementations of the flooding algorithm send new information via all interfaces other than the one over which the new piece of information was received. Such redundancy is introduced to guarantee that flooding is performed reliably, but implies considerable overhead of utilized bandwidth and processor consumption (time) if neighboring routers are connected with more than one link.
In order to guarantee convergence of a link state routing protocol, it should be ensured that link state protocol data units (PDUs) that originate after an initial LSDB synchronization between neighbors is completed are delivered to all routers within the flooding scope limits. These limits may comprise an area or the entire AS, depending on the protocol and the type of link state PDU. An area is a collection or group of contiguous networks and nodes (hosts), together with routers having interfaces to any of the included networks. Each area runs a separate copy of the link state routing algorithm and, thus, has its own LSDB. In the case of OSPF, the PDU is a link state advertisement (LSA), whereas for ISIS, the PDU is a link state packet (LSP). The LSA/LSP is a unit of data describing the local state of a router or network; for a router, as noted, the state includes the state of the router""s interfaces and adjacencies. An adjacency is a relationship formed between selected neighboring routers for the purpose of exchanging routing information and abstracting the network topology. One or more router adjacencies may be established over an interface. The collected PDUs of all routers and networks form the LSDB for the particular link state routing protocol.
Link state routing protocols typically use a per-interface paradigm for information flooding. Specifically, the model used by link state protocols to guarantee convergence implies that (i) PDUs are transmitted reliably between any pair of routers, and (ii) whenever a new PDU is received, it is sent over all interfaces other than the one over which it was received. An exception involves the case when the router is the Designated Router in OSPF, where the LSA is sent back over the same interfaces. To satisfy the first requirement, link state routing protocols keep retransmitting new PDUs to the neighbors that have not acknowledged reception (the only exception is flooding performed on broadcast links in ISIS). As an example, in OSPF, a link state retransmission list is maintained for every neighbor data structure on every interface. When an LSA is sent through an interface, it is placed on the retransmission list of every neighbor associated with this interface and is removed from it only after the neighbor has acknowledged reception of the LSA.
Similarly, ISIS implementations typically use Send Routing Message (SRMflag) and Send Sequence Number (SSNflag) flags that are interface-specific, as well as periodical Complete Sequence Numbers Packet (CSNP) announcements on broadcast links to ensure reliability of flooding. For each LSP, and for each interface (circuit) over which routing messages are exchanged, there is (i) a SRMflag that, if set, indicates that the LSP should be transmitted on that circuit and (ii) a SSNflag that, if set, indicates that information about the LSP should be included in a Partial Sequence Number PDU (PSNP) transmitted on that circuit.
Although, the per-interface model works well, this approach implies high overhead in the case of highly redundant networks where neighboring routers are connected by more than one link. For example, assume two neighboring routers (R1 and R2) are connected via N links. When R1 receives new topological or routing information (in the form of PDUs) from a router other than R2, it installs the new PDU in its LSDB and performs the basic per-interface flooding algorithm, sending the new PDU over all interfaces except the one over which the new PDU was received. Therefore, R1 sends N copies of the new PDU to R2. R2 installs the first copy of the PDU it receives into its LSDB; however, link bandwidth and processor cycles are spent transmitting and processing all N copies of the PDU.
Furthermore, after installing the first copy of the PDU in its LSDB, R2 xe2x80x9cfloods backxe2x80x9d to R1 Nxe2x88x921 copies of the PDU, again consuming substantial bandwidth and processor time. If R1 receives an acknowledgement from R2 on some links, but not from others, it keeps retransmitting unacknowledged PDUs even though they are already installed in R2""s LDSB. The number of PDUs that are flooded in accordance with a link state routing protocol is quite large in conventional networks. Accordingly, the behavior of the per-interface paradigm inefficiently consumes (wastes) overhead in terms of bandwidth and processor resources. The present invention is directed to a technique that reduces the bandwidth and processor overhead consumed by a conventional flooding algorithm.
The present invention comprises a technique that modifies an asynchronous flooding algorithm associated with a link state routing protocol operating within an area of a computer network from a per-interface paradigm to a per-neighbor paradigm. A router executes the flooding algorithm to distribute its local state throughout the area by sending the state over its interfaces to each neighboring router with whom it has an adjacency. In the illustrative embodiment, the flooding algorithm may be defined in terms of its operation on various data structures. For example, a neighbor data structure defines each adjacency between the router and its neighbors, whereas an interface data structure is provided for each interface having a router adjacency. Moreover, an area data structure describes the operation of the link state routing protocol executing within the area to which the router is connected.
According to an aspect of the inventive technique, each router maintains a list of neighbors within the area data structure. When a new neighbor (adjacency) appears on an interface belonging to the area, the router updates the neighbor data structure describing that adjacency by linking it to a corresponding entry in the list of neighbors. Utilizing information contained in the list of neighbors, as well as information describing the types of interfaces used by the neighbors in the list, the router marks each interface data structure (and thus each corresponding interface) within the area as either flooding-active or flooding-passive. Marking of the interface is performed in connection with an interface election process that selects a flooding-active interface on the basis of, e.g., interface cost, giving preference to faster interfaces. Thereafter, link state protocol data units (PDUs) are sent to the neighbors over those interfaces marked as flooding-active, i.e., coupled to the xe2x80x9cbestxe2x80x9d link(s). When the number of entries in the neighbor list changes or the states of the adjacencies in the list change, the router re-executes the interface election process.
If more than one best link is available, flooding to that neighbor may be performed using load balancing, i.e., different PDUs are sent along different links. Load balancing may also be performed through unequal-cost parallel links. Furthermore, multi-access interfaces are accorded preferential treatment if they are associated with more than one neighbor. For example, if an adjacency to a neighbor is realized through a broadcast interface, such as a local area network, and more than one neighbor is available on that interface, the interface is marked as flooding-active. This enables the router to deliver new PDUs to other routers over that same interface. However, if such an interface connects only two routers, it still may be marked as flooding-passive.
Since the novel technique changes the flooding algorithm from a per-interface to a per-neighbor model, PDU retransmission is not directed to a particular neighbor on a particular interface, but rather is directed solely to a particular neighbor. To that end, the inventive technique maintains a retransmission list on a per-neighbor basis, rather than on a per-neighbor-on-an-interface basis. The retransmission list is common for all adjacencies to a particular neighbor; therefore, delivery of new PDU information is guaranteed to the neighbor as long as there is at least one operational link to that neighbor. PDU delivery is guaranteed because the retransmission process is not tightly coupled to a particular adjacency, but instead is modified to use available flooding-active interfaces in response to, e.g, xe2x80x9cfiringxe2x80x9d of a retransmission timer. It should be noted that it is sufficient for a router that transmits PDUs to receive a single acknowledgement on any interface in order to stop retransmitting the PDUs. The asynchronous flooding algorithm is thus modified to initially consider the area neighbor list and then use available physical interfaces to reliably deliver the PDUs to its neighbors.
According to another aspect of the present invention, the flooding algorithm is modified to avoid flooding of new information back to the neighbor that issued the information. In contrast, the conventional flooding algorithm only prevents flooding to the same neighbor through the same interface.
Advantageously, the novel flooding technique is optimized to reduce bandwidth and processor overhead caused by link state routing protocols (such as ISIS and OSPF), while allowing more effective use of available bandwidth to thereby improve the scalability of these protocols. For example, the inventive technique allows routers to xe2x80x9cspeed upxe2x80x9d the adjacency establishment process in OSPF by taking advantage of the fact that a link state database (LSDB) loading process may be distributed among multiple links between adjacent routers. The novel technique also substantially speeds up network convergence since the amount of information sent over each link in order to synchronize the LSDBs may be apportioned among the number of flooding active adjacencies.